731F - Video Cards - CodeForces Solution


brute force data structures implementation math number theory *1900

Please click on ads to support us..

C++ Code:

#include<bits/stdc++.h>
#define int long long
#define pb push_back
#define pii pair<int, int>
#define F first
#define S second
#define all(x) x.begin(), x.end()
using namespace std;
const int N = 4e5+7;
int arr[N], cnt[N], mmz[N];
int32_t main(){
     ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
     int n; cin >> n;
     for(int i = 1; i <= n; i++) cin >> arr[i];
     for(int i = 1; i <= n; i++) cnt[arr[i]+1]++;
     for(int i = 2; i < N; i++) cnt[i] += cnt[i-1];
     int mx = 0;
     sort(arr+1, arr+n+1);
     for(int i = 1; i <= n; i++){
          int cmp = 0;
          if(mmz[arr[i]] > 0) continue;
          for(int j = arr[i]; j <= arr[i]*(arr[n]/arr[i]); j+=arr[i]){
               cmp += ((cnt[j+arr[i]] - cnt[j])*j);
          }
          mmz[arr[i]] = 1;
          mx = max(mx, cmp);
     }
     cout << mx;
}


Comments

Submit
0 Comments
More Questions

1706A - Another String Minimization Problem
1695B - Circle Game
1702B - Polycarp Writes a String from Memory
1701A - Grass Field
489C - Given Length and Sum of Digits
886B - Vlad and Cafes
915A - Garden
356A - Knight Tournament
1330A - Dreamoon and Ranking Collection
1692B - All Distinct
1156C - Match Points
1675A - Food for Animals
1328C - Ternary XOR
1689A - Lex String
1708B - Difference of GCDs
863A - Quasi-palindrome
1478A - Nezzar and Colorful Balls
1581B - Diameter of Graph
404A - Valera and X
908A - New Year and Counting Cards
146A - Lucky Ticket
1594C - Make Them Equal
1676A - Lucky
1700B - Palindromic Numbers
702C - Cellular Network
1672C - Unequal Array
1706C - Qpwoeirut And The City
1697A - Parkway Walk
1505B - DMCA
478B - Random Teams